//+------------------------------------------------------------------+
//|                                                       windef.mqh |
//|                             Copyright 2000-2025, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

// 定义句柄类型
#define HANDLE long

// 定义通用指针类型
#define PVOID long

// 定义任意大小数组
#define ANYSIZE_ARRAY 1

// 最大断点数
#define MAX_BREAKPOINTS 8

// 最大监视点数
#define MAX_WATCHPOINTS 2

// 最大硬件计数器数
#define MAX_HW_COUNTERS 16

// 最大路径长度
#define MAX_PATH 260

// 异常最大参数数量
#define EXCEPTION_MAXIMUM_PARAMETERS 15

// 延迟时间选项
enum LATENCY_TIME
{
    LT_DONT_CARE,           // 不关心延迟
    LT_LOWEST_LATENCY        // 最低延迟
};

// 获取文件信息级别
enum GET_FILEEX_INFO_LEVELS
{
    GetFileExInfoStandard,   // 标准信息级别
    GetFileExMaxInfoLevel    // 最大信息级别
};

// 查找信息级别
enum FINDEX_INFO_LEVELS
{
    FindExInfoStandard,      // 标准查找信息
    FindExInfoBasic,         // 基础查找信息
    FindExInfoMaxInfoLevel   // 最大查找信息级别
};

// 查找操作类型
enum FINDEX_SEARCH_OPS
{
    FindExSearchNameMatch,            // 名称匹配
    FindExSearchLimitToDirectories,   // 限制到目录
    FindExSearchLimitToDevices,      // 限制到设备
    FindExSearchMaxSearchOp           // 最大搜索操作
};

// DPI感知级别
enum DPI_AWARENESS
{
    DPI_AWARENESS_INVALID = -1,       // 无效
    DPI_AWARENESS_UNAWARE = 0,        // 未感知
    DPI_AWARENESS_SYSTEM_AWARE = 1,   // 系统感知
    DPI_AWARENESS_PER_MONITOR_AWARE = 2 // 单监视器感知
};

// DPI托管行为
enum DPI_HOSTING_BEHAVIOR
{
    DPI_HOSTING_BEHAVIOR_INVALID = -1, // 无效
    DPI_HOSTING_BEHAVIOR_DEFAULT = 0,  // 默认
    DPI_HOSTING_BEHAVIOR_MIXED = 1     // 混合
};

// 文件信息类别
enum FILE_INFO_BY_HANDLE_CLASS
{
    FileBasicInfo = 0,                  // 基础信息
    FileStandardInfo = 1,               // 标准信息
    FileNameInfo = 2,                   // 文件名信息
    FileRenameInfo = 3,                 // 重命名信息
    FileDispositionInfo = 4,            // 处置信息
    FileAllocationInfo = 5,             // 分配信息
    FileEndOfFileInfo = 6,              // 文件结束信息
    FileStreamInfo = 7,                 // 流信息
    FileCompressionInfo = 8,            // 压缩信息
    FileAttributeTagInfo = 9,           // 属性标签信息
    FileIdBothDirectoryInfo = 10,       // ID目录信息
    FileIdBothDirectoryRestartInfo = 11, // ID目录重启信息
    FileIoPriorityHintInfo = 12,         // IO优先级提示
    FileRemoteProtocolInfo = 13,         // 远程协议信息
    FileFullDirectoryInfo = 14,          // 完整目录信息
    FileFullDirectoryRestartInfo = 15,   // 完整目录重启信息
    FileStorageInfo = 16,                // 存储信息
    FileAlignmentInfo = 17,              // 对齐信息
    FileIdInfo = 18,                     // ID信息
    FileIdExtdDirectoryInfo = 19,        // 扩展ID目录信息
    FileIdExtdDirectoryRestartInfo = 20, // 扩展ID目录重启信息
    MaximumFileInfoByHandlesClass        // 最大文件信息类
};

// 读取目录通知信息类别
enum READ_DIRECTORY_NOTIFY_INFORMATION_CLASS
{
    ReadDirectoryNotifyInformation = 1,      // 标准通知信息
    ReadDirectoryNotifyExtendedInformation    // 扩展通知信息
};

// 已知安全标识符类型
enum WELL_KNOWN_SID_TYPE
{
    WinNullSid = 0,                           // 空SID
    WinWorldSid = 1,                          // 世界SID
    WinLocalSid = 2,                          // 本地SID
    WinCreatorOwnerSid = 3,                  // 创建者所有者SID
    WinCreatorGroupSid = 4,                  // 创建者组SID
    WinCreatorOwnerServerSid = 5,            // 创建者所有者服务器SID
    WinCreatorGroupServerSid = 6,             // 创建者组服务器SID
    WinNtAuthoritySid = 7,                    // NT权限SID
    WinDialupSid = 8,                        // 拨号用户SID
    WinNetworkSid = 9,                        // 网络用户SID
    WinBatchSid = 10,                         // 批处理用户SID
    WinInteractiveSid = 11,                   // 交互式用户SID
    WinServiceSid = 12,                      // 服务用户SID
    WinAnonymousSid = 13,                    // 匿名用户SID
    WinProxySid = 14,                        // 代理用户SID
    WinEnterpriseControllersSid = 15,         // 企业控制器SID
    WinSelfSid = 16,                         // 自身SID
    WinAuthenticatedUserSid = 17,            // 认证用户SID
    WinRestrictedCodeSid = 18,               // 受限代码SID
    WinTerminalServerSid = 19,               // 终端服务器SID
    WinRemoteLogonIdSid = 20,                // 远程登录ID SID
    WinLogonIdsSid = 21,                     // 登录ID SID
    WinLocalSystemSid = 22,                  // 本地系统SID
    WinLocalServiceSid = 23,                 // 本地服务SID
    WinNetworkServiceSid = 24,               // 网络服务SID
    WinBuiltinDomainSid = 25,                // 内置域SID
    WinBuiltinAdministratorsSid = 26,         // 内置管理员SID
    WinBuiltinUsersSid = 27,                 // 内置用户SID
    WinBuiltinGuestsSid = 28,                // 内置来宾SID
    WinBuiltinPowerUsersSid = 29,            // 内置高级用户SID
    WinBuiltinAccountOperatorsSid = 30,      // 内置账户操作员SID
    WinBuiltinSystemOperatorsSid = 31,       // 内置系统操作员SID
    WinBuiltinPrintOperatorsSid = 32,        // 内置打印操作员SID
    WinBuiltinBackupOperatorsSid = 33,       // 内置备份操作员SID
    WinBuiltinReplicatorSid = 34,            // 内置复制器SID
    WinBuiltinPreWindows2000CompatibleAccessSid = 35, // 内置兼容性访问SID
    WinBuiltinRemoteDesktopUsersSid = 36,    // 内置远程桌面用户SID
    WinBuiltinNetworkConfigurationOperatorsSid = 37, // 内置网络配置操作员SID
    WinAccountAdministratorSid = 38,         // 账户管理员SID
    WinAccountGuestSid = 39,                 // 账户来宾SID
    WinAccountKrbtgtSid = 40,                // Kerberos目标SID
    WinAccountDomainAdminsSid = 41,          // 域管理员SID
    WinAccountDomainUsersSid = 42,           // 域用户SID
    WinAccountDomainGuestsSid = 43,          // 域来宾SID
    WinAccountComputersSid = 44,             // 计算机账户SID
    WinAccountControllersSid = 45,           // 控制器账户SID
    WinAccountCertAdminsSid = 46,            // 证书管理员SID
    WinAccountSchemaAdminsSid = 47,          // 架构管理员SID
    WinAccountEnterpriseAdminsSid = 48,       // 企业管理员SID
    WinAccountPolicyAdminsSid = 49,          // 策略管理员SID
    WinAccountRasAndIasServersSid = 50,      // RAS和IAS服务器SID
    WinNTLMAuthenticationSid = 51,           // NTLM认证SID
    WinDigestAuthenticationSid = 52,          // 摘要认证SID
    WinSChannelAuthenticationSid = 53,       // 安全通道认证SID
    WinThisOrganizationSid = 54,              // 本组织SID
    WinOtherOrganizationSid = 55,             // 其他组织SID
    WinBuiltinIncomingForestTrustBuildersSid = 56, // 内置传入林信任构建器SID
    WinBuiltinPerfMonitoringUsersSid = 57,    // 内置性能监控用户SID
    WinBuiltinPerfLoggingUsersSid = 58,       // 内置性能日志用户SID
    WinBuiltinAuthorizationAccessSid = 59,    // 内置授权访问SID
    WinBuiltinTerminalServerLicenseServersSid = 60, // 内置终端服务器许可证服务器SID
    WinBuiltinDCOMUsersSid = 61,              // 内置DCOM用户SID
    WinBuiltinIUsersSid = 62,                 // 内置IUsers SID
    WinIUserSid = 63,                         // IUser SID
    WinBuiltinCryptoOperatorsSid = 64,        // 内置加密操作员SID
    WinUntrustedLabelSid = 65,                // 不受信任标签SID
    WinLowLabelSid = 66,                      // 低标签SID
    WinMediumLabelSid = 67,                   // 中标签SID
    WinHighLabelSid = 68,                     // 高标签SID
    WinSystemLabelSid = 69,                   // 系统标签SID
    WinWriteRestrictedCodeSid = 70,           // 写限制代码SID
    WinCreatorOwnerRightsSid = 71,            // 创建者所有者权限SID
    WinCacheablePrincipalsGroupSid = 72,      // 可缓存主体组SID
    WinNonCacheablePrincipalsGroupSid = 73,    // 不可缓存主体组SID
    WinEnterpriseReadonlyControllersSid = 74, // 企业只读控制器SID
    WinAccountReadonlyControllersSid = 75,    // 账户只读控制器SID
    WinBuiltinEventLogReadersGroup = 76,      // 内置事件日志读取器组
    WinNewEnterpriseReadonlyControllersSid = 77, // 新企业只读控制器SID
    WinBuiltinCertSvcDComAccessGroup = 78,    // 内置证书服务DCOM访问组
    WinMediumPlusLabelSid = 79,               // 中加标签SID
    WinLocalLogonSid = 80,                   // 本地登录SID
    WinConsoleLogonSid = 81,                 // 控制台登录SID
    WinThisOrganizationCertificateSid = 82,  // 本组织证书SID
    WinApplicationPackageAuthoritySid = 83,    // 应用程序包权限SID
    WinBuiltinAnyPackageSid = 84,            // 内置任意包SID
    WinCapabilityInternetClientSid = 85,       // 互联网客户端能力SID
    WinCapabilityInternetClientServerSid = 86, // 互联网客户端服务器能力SID
    WinCapabilityPrivateNetworkClientServerSid = 87, // 专用网络客户端服务器能力SID
    WinCapabilityPicturesLibrarySid = 88,      // 图片库能力SID
    WinCapabilityVideosLibrarySid = 89,        // 视频库能力SID
    WinCapabilityMusicLibrarySid = 90,        // 音乐库能力SID
    WinCapabilityDocumentsLibrarySid = 91,     // 文档库能力SID
    WinCapabilitySharedUserCertificatesSid = 92, // 共享用户证书能力SID
    WinCapabilityEnterpriseAuthenticationSid = 93, // 企业认证能力SID
    WinCapabilityRemovableStorageSid = 94,    // 可移动存储能力SID
    WinBuiltinRDSRemoteAccessServersSid = 95, // 内置RDS远程访问服务器SID
    WinBuiltinRDSEndpointServersSid = 96,     // 内置RDS端点服务器SID
    WinBuiltinRDSManagementServersSid = 97,   // 内置RDS管理服务器SID
    WinUserModeDriversSid = 98,               // 用户模式驱动程序SID
    WinBuiltinHyperVAdminsSid = 99,           // 内置Hyper-V管理员SID
    WinAccountCloneableControllersSid = 100,   // 可克隆控制器账户SID
    WinBuiltinAccessControlAssistanceOperatorsSid = 101, // 内置访问控制协助操作员SID
    WinBuiltinRemoteManagementUsersSid = 102, // 内置远程管理用户SID
    WinAuthenticationAuthorityAssertedSid = 103, // 认证机构断言SID
    WinAuthenticationServiceAssertedSid = 104, // 认证服务断言SID
    WinLocalAccountSid = 105,                 // 本地账户SID
    WinLocalAccountAndAdministratorSid = 106,  // 本地账户和管理员SID
    WinAccountProtectedUsersSid = 107,        // 受保护用户账户SID
    WinCapabilityAppointmentsSid = 108,        // 约会能力SID
    WinCapabilityContactsSid = 109,            // 联系人能力SID
    WinAccountDefaultSystemManagedSid = 110,    // 默认系统管理账户SID
    WinBuiltinDefaultSystemManagedGroupSid = 111, // 内置默认系统管理组SID
    WinBuiltinStorageReplicaAdminsSid = 112,   // 内置存储副本管理员SID
    WinAccountKeyAdminsSid = 113,              // 密钥管理员账户SID
    WinAccountEnterpriseKeyAdminsSid = 114,    // 企业密钥管理员账户SID
    WinAuthenticationKeyTrustSid = 115,        // 密钥信任认证SID
    WinAuthenticationKeyPropertyMFASid = 116,   // 密钥属性MFA认证SID
    WinAuthenticationKeyPropertyAttestationSid = 117, // 密钥属性证明认证SID
    WinAuthenticationFreshKeyAuthSid = 118,     // 新密钥认证SID
    WinBuiltinDeviceOwnersSid = 119             // 内置设备所有者SID
};

// 文件段元素联合
union FILE_SEGMENT_ELEMENT
{
    PVOID Buffer;    // 缓冲区指针
    ulong Alignment; // 对齐值
};

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
// 原因上下文结构
struct REASON_CONTEXT
{
    uint Version;   // 版本号
    uint Flags;     // 标志位
    PVOID Reason;   // 原因指针
};

// 重叠I/O结构
struct OVERLAPPED
{
    PVOID Internal;      // 内部数据
    PVOID InternalHigh;  // 内部高位数据
    uint Offset;         // 偏移量
    uint OffsetHigh;     // 高位偏移量
    HANDLE hEvent;       // 事件句柄
};

// 局部描述符表条目
struct LDT_ENTRY
{
    ushort LimitLow;   // 限制低16位
    ushort BaseLow;    // 基址低16位
    uchar BaseMid;     // 基址中8位
    uchar Flags1;      // 标志1
    uchar Flags2;      // 标志2
    uchar BaseHi;      // 基址高8位
};

// 全局唯一标识符
struct GUID
{
    ulong Data1;       // 数据1
    ushort Data2;      // 数据2
    ushort Data3;      // 数据3
    uchar Data4[8];    // 数据4
};

// 文件时间结构
struct FILETIME
{
    uint dwLowDateTime;   // 低32位时间
    uint dwHighDateTime;  // 高32位时间
};

// 点结构
struct POINT
{
    int x;  // X坐标
    int y;  // Y坐标
};

// 长点结构
struct POINTL
{
    int x;  // X坐标
    int y;  // Y坐标
};

// 短点结构
struct POINTS
{
    short x;  // X坐标
    short y;  // Y坐标
};

// 矩形结构
struct RECT
{
    int left;    // 左边界
    int top;     // 上边界
    int right;   // 右边界
    int bottom;  // 下边界
};

// 长矩形结构
struct RECTL
{
    int left;    // 左边界
    int top;     // 上边界
    int right;   // 右边界
    int bottom;  // 下边界
};

// 大小结构
struct SIZE
{
    int cx;  // 宽度
    int cy;  // 高度
};

// 文件信息基类
struct FILE_INFO
{
    // 基础文件信息结构
};

// 安全属性声明结构
struct CLAIM_SECURITY_ATTRIBUTE_V1
{
    PVOID Name;         // 属性名
    ushort ValueType;   // 值类型
    ushort Reserved;    // 保留字段
    uint Flags;         // 标志位
    uint ValueCount;    // 值数量
    PVOID Values;       // 值数组
};

// 安全属性信息结构
struct CLAIM_SECURITY_ATTRIBUTES_INFORMATION
{
    ushort Version;         // 版本号
    ushort Reserved;        // 保留字段
    uint AttributeCount;    // 属性数量
    PVOID Attribute;        // 属性数组
};
//+------------------------------------------------------------------+